Video synchronization on a real-time basis across multiple sources including synchronous and asynchronous sources is needed for application scenarios that require fast and flicker free switching among such sources. Unfortunately, video streams from different sources are not necessarily synchronized with each other as synchronization process is itself time consuming. As a result, a process of switching between sources cause user-visible display glitches.
Conventional switching systems enable switching of display from various synchronous or asynchronous sources by storing incoming frames from various sources in frame buffer memory before the switching, to avoid any visual disturbance. However, the switching requires a large frame buffer in the system to store the incoming frames. In addition, the frames read from such frame buffer are retimed before being displayed, therefore involving higher switching latencies as frames need to be stored, retrieved, and retimed. If there is no frame storage before switching, there will be visual disturbance or tearing artifacts seen, if switched directly. Moreover, some of the conventional switching systems may not even have the frame buffer memory. Adding the frame buffer memory significantly increases bill of materials (BOM) cost, power consumption and system real estate. Even if the frame buffer memory already exists in system, the storage and retrieve functions, before switching sources, consumes huge memory space and memory bandwidth, which is normally scarce.